import md5 from "md5"
import config from './config.js'
export default {
	userInfo:null,
	http(data){
		uni.showLoading({ title: '请求中',mask:true});
		//给参数添加sign和time
		let list=data.data
		list.time=Math.round(new Date() / 1000)
		let sign=''
		for(let k in list){
			if(typeof list[k]=='object'){
				sign+=k+'='+JSON.stringify(list[k]);
			}else{
				sign+=k+'='+list[k];
			}
		}
		sign+='signKey='+config.signKey
		sign=md5(sign.toUpperCase())
		list.sign=sign
		
		uni.request({
		    url: data.url,
		    data: list,
			method:'post',
			dataType:'json',
		    header: {
		        'content-type': 'application/json'
		    },
		    success: (res) => {
		        if(res.data.code!==0){
					if(data.no){
						data.no(res.data)
					}else{
						uni.hideLoading()
						uni.showModal({
						    title: '警告',
						    content: res.data.msg,
							showCancel:false,
						});
					}
				}else{
					data.ok(res.data.data)
				}
		    },
			fail(e) {
				console.log(e)
				uni.hideLoading()
				uni.showModal({
				    title: '警告',
				    content: '网络异常',
					showCancel:false,
				});
			}
		});
	},
	/**
	 * 处理表情
	 * @param {string} str 
	 * @return {string}
	 */
	utf16toEntities(str){ 
	    var patt=/[\ud800-\udbff][\udc00-\udfff]/g; // 检测utf16字符正则 
	    str = str.replace(patt, function(char){ 
	        var H, L, code; 
	        if (char.length===2) { 
	            H = char.charCodeAt(0); // 取出高位 
	            L = char.charCodeAt(1); // 取出低位 
	            code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00; // 转换算法 
	            return "&#" + code + ";"; 
	        } else { 
	            return char; 
	        } 
	    }); 
	    return str; 
	},
	/* 时间戳转换为日期格式
	 * 使用ayguo.time_format('Y-m-d H:i:s',t)等同PHP的date()
	 */
	time_format : function(str,t){
	    if(!t) return '';
	    var d = new Date();
	        d.setTime(t);
	        
	    var    _m = d.getMonth()+1,
	        _d = d.getDate(),
	        _H = d.getHours(),        
	        _i = d.getMinutes(),              
	        _s = d.getSeconds(),
	
	        format = {
	            'Y' : d.getFullYear(),                            // 年
	            'm' : _m.toString().length == 1 ? '0'+_m : _m,    // 月
	            'd' : _d.toString().length == 1 ? '0'+_d : _d,    // 日
	            'H' : _H.toString().length == 1 ? '0'+_H : _H,    // 时
	            'i' : _i.toString().length == 1 ? '0'+_i : _i,    // 分
	            's' : _s.toString().length == 1 ? '0'+_s : _s    // 秒
	        };
	
	        for(var i in format){
	            str = str.replace(new RegExp(i),format[i]);
	        }
	
	        return str;
	}
}